gPhoto2

gPhoto2

Последняя версия: 2.5
Скачали: 17

gPhoto2 — программа для работы с цифровыми камерами из командной строки. Она используется для обнаружения подключённой камеры, просмотра файлов на устройстве, загрузки снимков, удалённого спуска затвора, интервальной съёмки, tethered shooting и изменения доступных параметров камеры через терминал. В отличие от обычных фоторедакторов и менеджеров изображений, gPhoto2 не занимается обработкой фотографий: её задача — обеспечить связь между компьютером и камерой, передать команду, получить файл или отследить событие съёмки.

Программа работает через связку gphoto2 + libgphoto2: утилита gphoto2 выступает консольным клиентом, а библиотека libgphoto2 отвечает за доступ к камерам и протоколам. Такая архитектура делает программу удобной не только для фотографов, но и для тех, кто собирает фотобудку, стенд предметной съёмки, систему таймлапса, Raspberry Pi-проект или автоматический комплекс для лабораторной фиксации кадров.

Логотип gPhoto2

Главная особенность gPhoto2 — отсутствие привычного окна с кнопками, вкладками и панелями. Взаимодействие идёт через команды: --auto-detect ищет камеру, --list-files показывает файлы, --capture-image делает снимок, --capture-image-and-download снимает и сразу сохраняет файл на компьютер, --list-config выводит дерево настроек, а --set-config меняет доступный параметр. Из-за этого gPhoto2 выглядит сложнее программ вроде Entangle, digiKam или Darktable, но даёт прямой контроль там, где нужен скрипт, повторяемость и предсказуемое поведение без ручного клика в интерфейсе.

Что такое gPhoto2

gPhoto2 — CLI-интерфейс для цифровых камер. В обычном сценарии пользователь подключает фотоаппарат по USB, открывает терминал и выполняет команду. Программа отвечает текстовым выводом: показывает модель камеры, порт подключения, список доступных файлов, параметры устройства, путь к созданному снимку или сообщение об ошибке. Для работы с камерой не требуется открывать файловый менеджер, импортировать изображения в графическую библиотеку или запускать фирменную утилиту производителя.

Внутри gPhoto2 важны два уровня:

КомпонентРоль
gphoto2Консольная программа, которую запускает пользователь
libgphoto2Библиотека доступа к камерам, драйверам, PTP/MTP-устройствам и файловым операциям
camlibsНабор модулей поддержки конкретных семейств камер
port-библиотекаРабота с USB, serial, PTP/IP и другими доступными способами связи
фронтендыГрафические программы и сторонние приложения, использующие libgphoto2

Поддержка устройства в gPhoto2 не означает одинаковый набор функций для всех камер. Одни модели позволяют только скачать фотографии, другие поддерживают удалённый спуск, Live View, изменение ISO, выдержки, диафрагмы, баланса белого, режима фокусировки и места сохранения снимков. Камеры с MTP, PTP или PictBridge могут работать через совместимые протоколы даже без отдельного упоминания конкретной модели.

gPhoto2 не заменяет RAW-конвертер, каталогизатор, ретушёр или редактор. После получения файла пользователь может открыть его в GIMP, XnView, XnView MP, IrfanView, FastStone Image Viewer или другом инструменте для просмотра и обработки изображений.

Для каких задач используется gPhoto2

gPhoto2 выбирают не ради визуального комфорта, а ради управления камерой как устройством. Программа полезна там, где обычное ручное фотографирование или импорт через файловый менеджер создают лишние действия.

Основные задачи gPhoto2:

  • обнаружить камеру, подключённую к компьютеру;

  • получить сведения о модели, драйвере, порте и возможностях устройства;

  • вывести список папок и файлов на карте памяти;

  • скачать один файл, несколько файлов или весь набор снимков;

  • сделать снимок командой из терминала;

  • снять кадр и сразу сохранить его на компьютер;

  • запустить серию кадров с заданным интервалом;

  • отслеживать события камеры в режиме tethered shooting;

  • менять поддерживаемые параметры камеры;

  • встроить съёмку в shell-скрипт, cron-задачу, фотобудку или Raspberry Pi-сценарий.

В базовом сценарии gPhoto2 работает как мост между камерой и файловой системой компьютера. В более сложном варианте она становится частью автоматического процесса: скрипт вызывает gphoto2 --capture-image-and-download, сохраняет кадр по шаблону, передаёт файл обработчику, запускает публикацию, печать, резервное копирование или проверку результата.

Для предметной фотографии gPhoto2 полезна тем, что исключает касание камеры при каждом кадре. Камера стоит на штативе, объект меняется перед объективом, а спуск выполняется командой. Это снижает риск сдвига композиции. Для таймлапса важны параметры --interval и --frames: они задают частоту и количество кадров. Для фотобудки удобны --filename, --force-overwrite, --keep и обработчики после съёмки. Для технической съёмки востребованы --list-config, --get-config и --set-config, потому что они позволяют фиксировать повторяемые значения камеры.

Кому подойдёт gPhoto2

gPhoto2 подходит пользователям, которым нужен не просто просмотр фотографий, а управление камерой через команды.

Фотографам на Linux

Фотограф получает способ подключить камеру и снимать с компьютера без фирменной утилиты Windows/macOS. В Linux такая задача часто решается через gPhoto2 напрямую или через графические программы, использующие libgphoto2, например Entangle или Darktable. Entangle предоставляет графический интерфейс для tethered shooting, а Darktable использует gPhoto2 для доступа к камере в режиме привязанной съёмки.

Владельцам Raspberry Pi и одноплатных компьютеров

Raspberry Pi часто применяют в фотобудках, системах наблюдения, таймлапс-проектах и автоматизированных стендах. gPhoto2 удобна для таких задач, потому что работает без полноценного рабочего стола: достаточно терминала, USB-подключения, доступа к камере и команды съёмки. В проектах с внешней камерой команда gphoto2 --capture-image-and-download --filename picture.jpg используется как простой способ сделать кадр и сохранить его на устройство.

Разработчикам и администраторам

CLI-формат позволяет вызывать gPhoto2 из Bash, Python, PHP, Node.js-обвязок и системных таймеров. Команда возвращает понятный текстовый результат, а файл сохраняется в заданном каталоге. Это делает программу пригодной для серверных сценариев, где нет монитора и мыши.

Техническим специалистам

В лабораторной съёмке, микроскопии, астрофотографии и промышленной фиксации важны повторяемость и документируемость. gPhoto2 даёт список настроек камеры через --list-config; конкретное значение выводится через --get-config, а изменение выполняется через --set-config. Набор доступных параметров зависит от модели камеры и режима подключения.

Тем, кому нужен быстрый импорт снимков

Для простой выгрузки фотографий gPhoto2 позволяет обойтись без графического менеджера. Пользователь может вывести список файлов, скачать весь архив или забрать только нужный файл. В этом режиме gPhoto2 ближе к утилите передачи данных, чем к программе tethered shooting.

Как устроена gPhoto2

gPhoto2 построена вокруг libgphoto2. Утилита командной строки отправляет запрос к библиотеке, библиотека выбирает подходящий драйвер и порт, после чего камера возвращает список объектов, параметры или файл. Пользователь видит только команду и вывод терминала.

Упрощённая схема работы выглядит так:

  1. Пользователь подключает камеру.

  2. Система видит USB-устройство.

  3. gPhoto2 выполняет обнаружение через --auto-detect.

  4. libgphoto2 сопоставляет устройство с поддерживаемым протоколом или драйвером.

  5. Команда пользователя передаётся камере.

  6. Камера возвращает результат: снимок, список файлов, конфигурацию или событие.

  7. gPhoto2 выводит результат в терминал и сохраняет файл, если команда предполагает загрузку.

Такой подход объясняет сильные и слабые стороны программы. С одной стороны, gPhoto2 легко автоматизировать: команда одна и та же, результат можно обработать скриптом. С другой стороны, программа не скрывает технические детали: пользователь видит порты, имена настроек, пути вида /main/capturesettings/aperture, сообщения PTP и ограничения конкретной камеры.

libgphoto2 используется не только в gPhoto2. С ней работают графические приложения и фотопроцессы, где нужна поддержка камер. Entangle применяет GTK и libgphoto2 для графического tethered shooting; digiKam использует GPhoto library для интерфейса импорта с камер; Darktable использует gPhoto2 для tethering-подключения.

Интерфейс gPhoto2: терминал, параметры и текстовый вывод

У gPhoto2 нет главного окна, кнопки съёмки, панели миниатюр и боковой колонки настроек. Интерфейс программы — командная строка. Поэтому точные элементы управления здесь выглядят как опции и команды:

ЭлементЧто делает
gphoto2 --auto-detectИщет подключённые камеры
ModelКолонка с названием найденной камеры
PortКолонка с портом подключения, например usb:001,016
gphoto2 --summaryПоказывает сводку о состоянии камеры
gphoto2 --abilitiesВыводит возможности драйвера камеры
gphoto2 --list-filesПоказывает файлы на камере
gphoto2 --list-configВыводит дерево настроек
LabelНазвание параметра в выводе --get-config
TypeТип параметра: например RADIO, TEXT, TOGGLE, RANGE
CurrentТекущее значение параметра
ChoiceДоступный вариант выбора
gphoto2 --shellОткрывает интерактивную оболочку для работы с камерой
exit, quit, qВыход из shell-режима

В shell-режиме gPhoto2 становятся доступны команды, похожие на команды файловой оболочки: cd, ls, lcd, get, put, get-thumbnail, get-raw, get-exif, show-info, delete, mkdir, rmdir, show-exif, capture-image, capture-image-and-download, capture-preview, list-config, get-config, set-config, wait-event, wait-event-and-download, capture-tethered, help, exit, quit, q.

Раздел настроек показывает, почему gPhoto2 требует внимательности. Чтобы изменить диафрагму, ISO или другой параметр, сначала нужно узнать точный путь в дереве настроек. Например, путь к диафрагме в одном из вариантов вывода выглядит как /main/capturesettings/aperture. Затем пользователь смотрит доступные значения через --get-config и применяет нужное значение через --set-config или --set-config-index.

Поддерживаемые камеры и протоколы

База поддержки gPhoto2 зависит от libgphoto2. Наличие камеры в списке поддерживаемых устройств означает базовую возможность взаимодействия с устройством, но не гарантирует одинаковый набор функций для всех моделей. Для удалённого управления нужно проверять конкретные возможности камеры: capture, preview, tethering, список настроек и доступность изменения параметров.

Типы взаимодействия с камерой:

Уровень поддержкиЧто доступно
Только доступ к файламПросмотр и загрузка снимков
PTP/MTP/PictBridgeРабота с совместимыми устройствами без отдельной записи в списке моделей
Удалённый спуск--capture-image, --capture-image-and-download
Tethered shootingОжидание событий и загрузка новых кадров
Настройка параметров--list-config, --get-config, --set-config
Live View / preview--capture-preview, viewfinder-поддержка в совместимых моделях
ВидеоТолько для камер и драйверов, где эта функция доступна

У Canon, Nikon, Sony, Fuji, Olympus, Ricoh, Pentax и других производителей поддержка различается не только между брендами, но и между моделями. Даже внутри одной линейки отдельная камера может отдавать JPEG/RAW, но не позволять менять диафрагму; другая камера может поддерживать удалённый спуск, но требовать отдельный режим подключения; третья может блокироваться файловым менеджером или системным фотопроцессом до отключения автоматического монтирования.

Для gPhoto2 важно не название бренда само по себе, а сочетание факторов:

  • режим подключения камеры;

  • доступность PTP/MTP;

  • драйвер в libgphoto2;

  • разрешение ОС на доступ к USB-устройству;

  • состояние камеры: включена, не спит, не занята меню, не подключена к другому приложению;

  • поддержка нужной операции самой камерой.

Основные возможности gPhoto2

Обнаружение камеры

Первый практический шаг — проверить, видит ли gPhoto2 устройство. Для этого используется команда:

gphoto2 --auto-detect

Нормальный вывод содержит две основные колонки: Model и Port. В Model отображается название камеры, в Port — порт вида usb:001,016. Если список пустой, камера не обнаружена, занята другой программой, подключена в неподходящем режиме или у пользователя нет доступа к USB-устройству.

Дополнительные команды диагностики:

gphoto2 --list-portsgphoto2 --summarygphoto2 --abilities

--list-ports показывает доступные порты, --summary выводит сводку состояния камеры, --abilities помогает понять, какие функции доступны через выбранный драйвер. Команда --summary работает как сводка статуса камеры, а --storage-info показывает сведения о носителе камеры.

Команды gPhoto2 в терминале Linux

Просмотр файлов на камере

Для навигации по содержимому камеры используются команды:

gphoto2 --list-foldersgphoto2 --list-filesgphoto2 --show-info

--list-folders показывает структуру папок, --list-files выводит файлы, а --show-info показывает информацию о конкретном файле. В shell-режиме похожие действия выполняют ls, cd, show-info, get, delete, mkdir, rmdir.

Такой режим удобен, когда нужно быстро проверить, появились ли кадры после серии съёмок, не заходя в графический импорт. Для архива снимков можно использовать загрузку всех файлов, а для выборочной работы — забрать конкретный объект.

Загрузка фотографий

Для переноса снимков с камеры на компьютер используются:

gphoto2 --get-all-filesgphoto2 --get-file 1gphoto2 --get-thumbnail 1gphoto2 --get-raw 1gphoto2 --get-exif 1

Команда --get-all-files забирает все доступные файлы, --get-file скачивает выбранный объект, --get-thumbnail получает миниатюру, --get-raw предназначена для raw-данных, --get-exif — для Exif. В shell-режиме эти действия соответствуют командам get, get-thumbnail, get-raw, get-exif и show-exif.

Для управления именами файлов используется --filename. Шаблон имени помогает избежать перезаписи:

gphoto2 --get-all-files --filename "%Y%m%d-%H%M%S-%n.%C"

В шаблонах применяются подстановки времени, номера и расширения. Для длинных серий особенно важна нумерация: одинаковое имя приведёт к конфликту или перезаписи, если дополнительно используется --force-overwrite.

Съёмка с компьютера

Главная команда удалённого спуска:

gphoto2 --capture-image

Она спускает затвор и сохраняет кадр на камере. Команда работает подобно нажатию физической кнопки спуска: камера использует свои текущие настройки, включая выдержку, диафрагму, автофокус и разрешение.

Для съёмки и немедленного сохранения файла на компьютер используется:

gphoto2 --capture-image-and-download

Эта команда удобнее для tethered shooting и автоматических сценариев, потому что файл сразу попадает в каталог, где его может обработать следующий шаг: просмотрщик, скрипт печати, обработчик фона, система публикации или резервного копирования.

Предпросмотр и Live View

Команда:

gphoto2 --capture-preview

делает preview-кадр и загружает его на компьютер. Preview не равен полноценному Live View во всех случаях. Реальная работа видоискателя зависит от камеры и драйвера. В проектах, где требуется видеопоток, используют --capture-movie, --stdout и внешние инструменты, но это уже более сложный сценарий. Для фотостенда и предметной съёмки чаще достаточно тестового кадра или preview.

Tethered shooting

Tethered shooting в gPhoto2 строится вокруг ожидания событий камеры. Команда:

gphoto2 --capture-tethered

ожидает события и загружает новые изображения. wait-event-and-download и capture-tethered ждут события камеры и скачивают новые изображения; обычный wait-event оставляет новые изображения на камере.

Практический смысл режима такой: камера подключена к компьютеру, а gPhoto2 ждёт появления файлов. Когда камера сообщает о новом объекте, программа скачивает кадр. Это полезно для студийной съёмки, когда фотограф нажимает спуск на камере, но хочет сразу получать изображение на компьютер.

Интервальная съёмка и таймлапс

Для интервальной съёмки используются параметры:

--interval--frames

Пример:

gphoto2 --capture-image-and-download --interval 10 --frames 60 --filename "frame-%04n.%C"

Эта команда делает 60 кадров с интервалом 10 секунд и сохраняет их с нумерацией. -I / --interval задаёт интервал, а -F / --frames задаёт количество кадров. Без ограничения количества кадров съёмка продолжается по заданному интервалу до остановки процесса или исчерпания доступного пространства.

Таймлапс через gPhoto2 особенно удобен на Linux и Raspberry Pi: скрипт можно запустить без графической среды, а результат складывать в отдельную папку. После этого кадры собираются в видео любым подходящим инструментом.

Настройка параметров камеры

Работа с настройками строится в три шага:

gphoto2 --list-configgphoto2 --get-config /main/capturesettings/aperturegphoto2 --set-config /main/capturesettings/aperture=8

--list-config выводит доступные параметры, --get-config показывает значение и допустимые варианты, --set-config устанавливает новое значение. В выводе --get-config важны поля Label, Type, Current, Choice. Если тип параметра RADIO, можно выбирать одно из перечисленных значений. Если параметр имеет тип RANGE, значение задаётся числом в допустимом диапазоне.

Вывод gPhoto2 с параметром диафрагмы через get-config

gPhoto2 скриншот 1

Изменение параметров зависит от режима камеры. Например, диафрагма может не меняться, если камера находится не в ручном режиме или если объектив не позволяет управлять значением через протокол. В таких случаях gPhoto2 не заменяет физические настройки камеры: она передаёт команды только тем параметрам, которые камера раскрывает через подключение.

Подготовка камеры к работе

Перед запуском команд камера должна быть включена, подключена кабелем и не занята другой программой. Для Linux-сценария часто важно, чтобы файловый менеджер не смонтировал камеру автоматически. При tethering-просессах программе нужно получить контроль над устройством. Если камера уже захвачена другим процессом, команды могут завершаться ошибкой доступа.

Практический чек-лист:

  • зарядить аккумулятор камеры или подключить питание;

  • вставить карту памяти, если камера требует её для съёмки;

  • выбрать режим подключения PTP/MTP, если камера предлагает выбор;

  • отключить автоматический сон камеры на время серии;

  • подключить камеру напрямую к USB-порту или к надёжному концентратору;

  • закрыть файловый менеджер, фотомонитор, импортёр изображений и другие приложения, которые могли занять устройство;

  • выполнить gphoto2 --auto-detect;

  • проверить порт и модель;

  • выполнить gphoto2 --summary или gphoto2 --abilities.

Для длительных серий важны питание, карта памяти, температурный режим, стабильный кабель и место на диске. Сбой в любом из этих элементов приведёт не к проблеме gPhoto2 как программы, а к ошибке процесса съёмки.

Пошаговая инструкция: как проверить камеру в gPhoto2

Шаг 1. Подключить камеру

Камера подключается по USB. На корпусе камеры нужно выбрать режим, при котором устройство доступно компьютеру как цифровая камера, а не только как накопитель. У разных брендов название режима отличается, поэтому ориентиром служит результат --auto-detect.

Шаг 2. Найти камеру

gphoto2 --auto-detect

Ожидаемый результат:

Model                          Port----------------------------------------------------------Nikon DSC D5200                usb:001,016

Если в списке нет камеры, нужно проверить кабель, питание, режим подключения и занятость устройства другим процессом.

Шаг 3. Получить сводку

gphoto2 --summary

Сводка помогает понять состояние камеры: доступность устройства, сведения о хранилище, текущий режим и часть параметров, которые камера передаёт программе.

Шаг 4. Посмотреть возможности

gphoto2 --abilities

Эта команда показывает возможности драйвера: какие операции поддерживаются для конкретной камеры. Для принятия решения важнее не бренд камеры, а фактический набор функций.

Шаг 5. Посмотреть список настроек

gphoto2 --list-config

Команда выводит дерево настроек. В нём могут быть пути вида:

/main/actions/syncdatetime/main/settings/capturetarget/main/capturesettings/aperture/main/capturesettings/shutterspeed/main/imgsettings/iso

Названия различаются между камерами. Нельзя переносить путь настройки с одной модели на другую без проверки через --list-config.

Шаг 6. Проверить конкретный параметр

gphoto2 --get-config /main/capturesettings/aperture

Вывод показывает тип, текущее значение и варианты. Если параметр доступен только для чтения, gPhoto2 не изменит его через --set-config.

Шаг 7. Сделать тестовый кадр

gphoto2 --capture-image

Кадр остаётся на камере. Для проверки загрузки лучше использовать:

gphoto2 --capture-image-and-download --filename "test.%C"

После выполнения в текущем каталоге должен появиться файл. Если файл не появился, нужно прочитать вывод команды: gPhoto2 обычно сообщает, где найден новый объект и куда он сохраняется.

Инструкция: как снять фото и сразу сохранить его на компьютер

Для tethered-сценария чаще всего используется команда:

gphoto2 --capture-image-and-download --filename "photo-%Y%m%d-%H%M%S.%C"

Что делает команда:

ФрагментЗначение
gphoto2Запуск программы
--capture-image-and-downloadСнимок и немедленная загрузка
--filenameШаблон имени сохраняемого файла
%Y%m%dДата в имени файла
%H%M%SВремя в имени файла
%CРасширение исходного файла

Такой шаблон удобен для предметной съёмки и технической фиксации, потому что имя содержит время кадра. Если команда запускается несколько раз, новый файл не получает то же имя, что предыдущий. Для серий с большим количеством кадров можно использовать нумерацию:

gphoto2 --capture-image-and-download --filename "shot-%04n.%C"

%04n создаёт номер с ведущими нулями: shot-0001.jpg, shot-0002.jpg, shot-0003.jpg. Это упрощает сортировку в файловом менеджере и дальнейшую сборку последовательности.

Для сохранения кадра и на камере, и на компьютере используется параметр --keep:

gphoto2 --capture-image-and-download --keep --filename "photo-%04n.%C"

--keep нужен в сценариях, где карта памяти камеры остаётся резервной копией. В фотобудках часто используется связка --capture-image-and-download --keep --filename, а для выбора места сохранения на камере применяется параметр capturetarget.

Инструкция: как сделать таймлапс

Таймлапс через gPhoto2 строится на повторяющейся съёмке. Пример для 60 кадров с интервалом 10 секунд:

gphoto2 --capture-image-and-download --interval 10 --frames 60 --filename "timelapse-%04n.%C"

Разбор:

  • --capture-image-and-download снимает и сохраняет кадр;

  • --interval 10 задаёт 10 секунд между кадрами;

  • --frames 60 ограничивает серию 60 кадрами;

  • --filename "timelapse-%04n.%C" создаёт последовательную нумерацию.

Для короткого теста лучше начать с небольшой серии:

gphoto2 --capture-image-and-download --interval 2 --frames 5 --filename "test-%02n.%C"

Тест нужен, чтобы проверить три вещи: камера не засыпает, файлы не перезаписываются, кадры появляются в нужной папке. После проверки можно увеличивать интервал и количество кадров.

Для длительного таймлапса важны:

ПроверкаПочему важно
Питание камерыСерия не должна прерваться из-за аккумулятора
Место на дискеКадры скачиваются на компьютер
Нумерация файловСборка видео требует правильного порядка
Режим фокусаАвтофокус может менять кадр между снимками
ЭкспозицияРезкие изменения яркости испортят последовательность
Сон камерыКамера должна оставаться доступной
USB-кабельПотеря связи прерывает процесс

Для таймлапса на Raspberry Pi желательно запускать gPhoto2 из отдельного скрипта, чтобы фиксировать имя проекта, путь сохранения, число кадров и интервал. Пример простого скрипта:

#!/bin/bashmkdir -p "$HOME/timelapse"cd "$HOME/timelapse" || exit 1gphoto2 --capture-image-and-download \  --interval 10 \  --frames 60 \  --filename "frame-%04n.%C"

После съёмки папка содержит последовательность файлов. Дальше их можно собрать в ролик сторонним инструментом, а сами фотографии открыть в просмотрщике или редакторе.

Инструкция: как изменить параметр камеры

Настройки в gPhoto2 нельзя менять по памяти. Сначала нужно получить дерево параметров:

gphoto2 --list-config

Затем выбрать нужный путь и посмотреть доступные значения:

gphoto2 --get-config /main/capturesettings/aperture

Типичный вывод содержит:

Label: ApertureType: RADIOCurrent: 1.8Choice: 0 1.8Choice: 1 2Choice: 2 2.2Choice: 3 2.5

Если нужно поставить значение через индекс:

gphoto2 --set-config-index /main/capturesettings/aperture=3

Если нужно поставить значение напрямую:

gphoto2 --set-config /main/capturesettings/aperture=8

После изменения стоит повторно проверить параметр:

gphoto2 --get-config /main/capturesettings/aperture

В gPhoto2 есть несколько вариантов установки значения: set-config NAME=VALUE, set-config-value NAME=VALUE, set-config-index NAME=VALUE. В shell-режиме set-config-index применяется к пунктам типа Menu или Radio button, где выбор идёт по индексу.

Изменённое значение параметра диафрагмы в gPhoto2

Инструкция: как использовать shell-режим

Shell-режим открывает интерактивную оболочку gPhoto2:

gphoto2 --shell

Внутри можно выполнять команды без повторного запуска gphoto2 каждый раз:

lscd /store_00010001get capt0001.jpgcapture-imagecapture-image-and-downloadlist-configget-config /main/imgsettings/isoexit

Shell-режим удобен для ручной диагностики. Пользователь может перемещаться по папкам камеры, скачивать отдельные файлы, смотреть Exif, удалять объекты и делать тестовые снимки. Для автоматизации чаще используют обычные команды вне shell, потому что их проще вызывать из скрипта.

Системные требования

gPhoto2 не имеет типичных требований уровня конкретного объёма оперативной памяти или модели процессора. Программа лёгкая, но зависит от операционной системы, библиотеки, USB-доступа и камеры.

КомпонентТребование
Операционная системаUnix-like система: Linux, FreeBSD, NetBSD, macOS и другие подобные ОС
КамераУстройство, поддерживаемое libgphoto2, либо совместимое PTP/MTP/PictBridge-устройство
ПодключениеUSB для типичного сценария обнаружения и управления
Библиотекаlibgphoto2
ТерминалЛюбой терминал, из которого запускается gphoto2
Права доступаПользователь должен иметь доступ к USB-устройству
Для настройки камерыКамера должна раскрывать соответствующие параметры
Для tethered shootingКамера не должна быть занята файловым менеджером или другим приложением
Для длительных серийСтабильное питание камеры и место на диске

gPhoto2 работает на большом диапазоне Unix-like операционных систем, включая Linux, FreeBSD, NetBSD и Mac OS X; проект также распространяется в крупных Linux-дистрибутивах.

Windows не является основной средой для gPhoto2. Полноценный пользовательский сценарий в Windows обычно требует дополнительных слоёв и не даёт такого же прямого пути, как в Linux. Поэтому при выборе gPhoto2 для регулярной работы проще ориентироваться на Linux, BSD или macOS.

Поддержка форматов, файлов и протоколов

gPhoto2 работает не как конвертер форматов, а как программа доступа к файлам камеры. Если камера создаёт JPEG, RAW, CR2, NEF, RAF, ORF или другой формат, gPhoto2 скачивает объект как файл. Программа не должна превращать RAW в JPEG и не выполняет цветокоррекцию. Для обработки после получения снимка подходят RAW-конвертеры, каталогизаторы и редакторы.

Файловые операции:

ОперацияКоманда
Список папок--list-folders
Список файлов--list-files
Загрузка всех файлов--get-all-files
Загрузка выбранного файла--get-file
Загрузка миниатюры--get-thumbnail
Загрузка raw-данных--get-raw
Загрузка Exif--get-exif
Информация о файле--show-info
Удаление файла в shell-режимеdelete FILENAME

Для совместимости важны PTP, MTP и PictBridge. Камеры, работающие через эти протоколы, могут быть доступны без отдельного перечисления модели в списке. При этом USB Mass Storage — отдельная история: такие устройства часто монтируются ОС как накопители, и для них проще использовать обычный файловый доступ.

Типичные сценарии использования

Предметная съёмка

В предметной съёмке камера стоит на штативе, свет выставлен заранее, объект меняется в кадре, а спуск выполняется с компьютера. gPhoto2 подходит для такого процесса, потому что фотограф не трогает корпус камеры. Команда:

gphoto2 --capture-image-and-download --filename "product-%04n.%C"

создаёт последовательность кадров. После каждого кадра файл можно открыть в просмотрщике, отправить в папку обработки или передать скрипту, который проверит наличие файла и переименует его по артикулу.

Ограничение: gPhoto2 не показывает удобную ленту миниатюр, как студийные программы. Для визуальной проверки результата рядом обычно используют файловый менеджер, просмотрщик или программу обработки.

Фотобудка

В фотобудке gPhoto2 используется как исполнитель команды съёмки. Пользователь нажимает кнопку в веб-интерфейсе или на физическом контроллере, скрипт вызывает gPhoto2, получает файл и передаёт его следующему этапу: наложение рамки, печать, публикация, отправка в галерею.

Пример команды:

gphoto2 --capture-image-and-download --keep --filename "/home/pi/booth/photo-%Y%m%d-%H%M%S.%C"

--keep сохраняет снимок на карте камеры, а --filename задаёт путь на устройстве. Для фотобудки важнее стабильность и обработка ошибок, чем ручной комфорт. Нужно заранее продумать, что делает скрипт, если камера не найдена, файл не появился, карта памяти заполнена или камера ушла в сон.

Таймлапс

Для таймлапса gPhoto2 особенно полезна при съёмке с внешней камерой. Встроенный модуль Raspberry Pi проще, но DSLR или беззеркальная камера даёт другой объектив, сенсор, глубину резкости и качество кадра.

Команда таймлапса:

gphoto2 --capture-image-and-download --interval 30 --frames 240 --filename "day-%04n.%C"

Такой пример создаёт 240 кадров с интервалом 30 секунд. Перед длинной серией нужно выполнить тестовую мини-серию, проверить фокус, экспозицию, питание, температуру камеры и место на диске.

Астрофотография

В астрофотографии ценится отсутствие вибрации и возможность повторять кадры. gPhoto2 помогает спускать затвор без касания камеры и сохранять файлы на компьютер. Для выдержек и специальных режимов нужно проверять поддержку конкретной модели: не каждая камера раскрывает bulb, выдержку, ISO и фокусировку через libgphoto2.

Для астрофото важны:

  • стабильное питание;

  • отключение автоотключения камеры;

  • ручная фокусировка;

  • сохранение RAW;

  • аккуратная нумерация кадров;

  • контроль температуры и конденсата;

  • отдельный журнал команд или скрипт.

Лабораторная фиксация

В лабораторных стендах gPhoto2 используется для повторяемого снимка при одинаковых условиях. Скрипт может включать внешний свет, ждать стабилизации, делать кадр и сохранять файл с отметкой времени. В этом сценарии команда gPhoto2 — только один шаг процесса, но именно она отвечает за связь с камерой.

Массовая выгрузка снимков

Команда:

gphoto2 --get-all-files --filename "archive-%04n.%C"

полезна для переноса архива с камеры без графического импорта. Пользователь получает файлы в текущей папке, а затем сортирует их любым менеджером изображений. Для дальнейшего просмотра можно использовать FastStone Image Viewer, IrfanView, XnView MP или Picasa, если нужен не консольный, а визуальный этап работы.

Практические команды gPhoto2

ЗадачаКоманда
Найти камеруgphoto2 --auto-detect
Посмотреть портыgphoto2 --list-ports
Вывести сводкуgphoto2 --summary
Проверить возможностиgphoto2 --abilities
Список камер, известных программеgphoto2 --list-cameras
Список папок на камереgphoto2 --list-folders
Список файловgphoto2 --list-files
Скачать все файлыgphoto2 --get-all-files
Скачать выбранный файлgphoto2 --get-file 1
Получить миниатюруgphoto2 --get-thumbnail 1
Сделать снимок на камеруgphoto2 --capture-image
Сделать снимок и скачатьgphoto2 --capture-image-and-download
Получить previewgphoto2 --capture-preview
Запустить tethered shootinggphoto2 --capture-tethered
Ждать событиеgphoto2 --wait-event
Ждать событие и скачать файлgphoto2 --wait-event-and-download
Показать дерево настроекgphoto2 --list-config
Посмотреть параметрgphoto2 --get-config NAME
Изменить параметрgphoto2 --set-config NAME=VALUE
Открыть shell-режимgphoto2 --shell
Показать сведения о носителеgphoto2 --storage-info
Сбросить USB-портgphoto2 --reset

Команда --reset используется для сброса USB-порта первой найденной камеры или порта, указанного через --port usb:XXX,YYY. Она имитирует отключение и подключение камеры, когда протокол общения завис.

gPhoto2 скриншот 2

Сравнение с аналогами

gPhoto2 не стоит сравнивать с обычными просмотрщиками изображений. Её ближайшие аналоги — программы tethered shooting, импорта с камеры и удалённого управления. Разница в том, что gPhoto2 работает из терминала, а большинство альтернатив делают ставку на графический интерфейс.

ПрограммаТипОсновной сценарийСильная сторонаОграничение
gPhoto2CLIУправление камерой, съёмка и загрузка через командыАвтоматизация, скрипты, Raspberry Pi, серверные сценарииНет привычного GUI
EntangleGUITethered shooting в LinuxГрафический интерфейс для съёмки с компьютераМеньше подходит для headless-скриптов
DarktableGUIRAW-процесс и tetheringСъёмка сразу внутри рабочего процесса RAWКамера должна быть не смонтирована другими приложениями
digiKamGUIИмпорт и каталог фотографийУдобная работа с библиотекой снимковЭто не чистая консольная утилита автоматизации
Canon EOS UtilityGUIУправление Canon EOSФирменный интерфейс, Remote Shooting, сохранение на компьютерПривязка к камерам Canon
Nikon NX TetherGUITethered shooting NikonИнтерфейс с иконками Nikon, интеграция с NX Studio, Lightroom и Capture OneПривязка к совместимым Nikon
Capture OneGUIКоммерческая студийная tethered-съёмка и RAW-процессПрофессиональный визуальный workflowИзбыточен для простого скрипта съёмки

Entangle предоставляет графический интерфейс для tethered shooting: пользователь подключает камеру, запускает программу и снимает. В отличие от gPhoto2, здесь основной сценарий — работа глазами и мышью, а не команда в shell. Entangle использует GTK и libgphoto2, поэтому по аппаратной базе связан с тем же семейством технологий.

Darktable ориентирован на фотографический workflow: импорт, RAW-обработка, каталог, стили, tethering. В режиме привязанной съёмки он использует gPhoto2 для доступа к камере и требует, чтобы камера не была смонтирована системой. Для фотографа, который сразу отбирает и обрабатывает RAW, Darktable удобнее чистой командной строки. Для Raspberry Pi-скрипта или фотобудки gPhoto2 проще.

digiKam ближе к менеджеру фотоархива. Его Import Tool подключается к цифровой камере и загружает фотографии в альбомы digiKam; поддержка камер связана с библиотекой GPhoto. Это хороший вариант для визуального импорта и каталогизации, но не замена gPhoto2 там, где команда должна запускаться автоматически.

Canon EOS Utility подходит владельцам Canon EOS, которым нужен фирменный Remote Shooting. В инструкции Canon кнопка [Remote Shooting] запускает удалённую съёмку, а полученные изображения сохраняются напрямую на компьютер и могут просматриваться в DPP или другом связанном ПО. gPhoto2 универсальнее для Linux-автоматизации, но EOS Utility удобнее для пользователей Canon, которым нужен готовый графический процесс.

Nikon NX Tether рассчитан на tethered shooting с совместимыми Nikon. Интерфейс использует знакомые иконки Nikon, может работать с NX Studio, Adobe Photoshop Lightroom и Capture One, поддерживает уведомления о передаче. Это фирменный путь для фотографа Nikon, которому нужна визуальная привязанная съёмка. gPhoto2 остаётся вариантом для командной строки и автоматизации.

Capture One — профессиональная среда для студийного workflow, tethered shooting и RAW-обработки. Она сравнима с gPhoto2 только в части получения кадров с камеры, но решает другую задачу: управление съёмкой, просмотр, цвет, отбор, обработка и передача клиенту в едином визуальном интерфейсе. Для скриптов и технической съёмки gPhoto2 проще; для коммерческой студии Capture One предлагает более цельный процесс.

Отличия gPhoto2 от графических программ

Главное отличие gPhoto2 — управляемость через команды. Это меняет подход к работе.

КритерийgPhoto2Графические программы
ЗапускКоманда в терминалеОкно приложения
ПовторяемостьВысокая: команда фиксируется в скриптеЗависит от ручных действий
Headless-работаПодходитЧасто неудобна
Визуальный отборНе является основной задачейОбычно встроен
Настройка камерыЧерез имена параметровЧерез панели и поля
Обработка фотоНетЧасто есть
Интеграция в автоматизациюПростаяОграничена API или внешними средствами
ОсвоениеТребует терминалаПроще для новичка

Для новичка gPhoto2 сложнее Entangle или EOS Utility, потому что в ней нет визуальной подсказки. Для технического пользователя она проще: одна команда запускает действие без окон, подтверждений и лишних этапов. В этом сила gPhoto2 как программы для автоматизации фотосъёмки.

Отзывы пользователей и профильных журналов

Оценка в профильных материалах

Linux.com разбирал gPhoto как способ управлять камерой с компьютера: в материале отдельно объясняются capture-image, интервалы --interval, количество кадров --frames, capture-preview, --set-config и --list-config. Программа показана как инструмент, который посылает камере команду спуска, использует текущие настройки камеры и может менять поддерживаемые параметры через конфигурацию.

Linux Journal рассматривал gPhoto2 в контексте автоматической съёмки и DSLR-камер в Linux. В материале подчёркнута польза gPhoto2 для ситуаций, где обычная веб-камера не даёт нужного качества, а DSLR можно использовать как источник изображений или видео в Linux-сценарии.

Ubuntu User описывал gPhoto2 как командное ПО для управления DSLR с компьютера, автоматической последовательной съёмки, таймлапса на микроскопах и телескопах. Там же подчёркнуто важное ограничение: наличие камеры в списке поддерживаемых моделей не гарантирует расширенное удалённое управление; для сложных функций лучше подходят камеры с соответствующей поддержкой remote control.

Softpedia в обзоре gPhoto2 описывает программу как open source command-line software and library framework для загрузки фотографий с цифровых камер и отмечает работу с большим числом моделей, а также наличие большого набора параметров командной строки.

Усреднённое мнение пользователей

В пользовательских отзывах gPhoto2 чаще хвалят за стабильную работу с конкретными DSLR, полезность библиотеки и пригодность для программ вроде Shotwell. Среди замечаний встречается желание видеть более частые point releases. Отзывы такого типа хорошо отражают профиль программы: gPhoto2 ценят не за красоту интерфейса, а за то, что она решает задачу связи с камерой в Linux и в автоматических сценариях.

Типичная картина мнений:

Положительно оценивают:

  • работу с Canon DSLR и Nikon DSLR в Linux;

  • возможность управлять камерой без фирменной программы производителя;

  • пригодность для скриптов;

  • использование libgphoto2 другими приложениями;

  • открытый характер проекта;

  • полезность для Raspberry Pi и фотобудок.

Критикуют:

  • необходимость работать с терминалом;

  • зависимость набора функций от конкретной камеры;

  • сложности с USB-доступом и автоподключением камеры;

  • неодинаковую поддержку параметров у разных моделей;

  • необходимость разбираться в путях конфигурации.

Преимущества и ограничения

Плюсы

  • gPhoto2 управляет камерой из командной строки, поэтому подходит для скриптов и повторяемых процессов.

  • Программа позволяет сделать снимок, скачать файл, отследить событие камеры и запустить интервальную серию.

  • --list-config, --get-config и --set-config дают доступ к параметрам камеры, которые раскрывает конкретная модель.

  • --capture-image-and-download подходит для tethered shooting и фотобудок, где файл нужен на компьютере сразу после кадра.

  • --interval и --frames позволяют делать серии для таймлапса без отдельного графического приложения.

  • Shell-режим удобен для ручной диагностики, просмотра файлов и проверки команд.

  • gPhoto2 используется в экосистеме приложений на базе libgphoto2, включая Entangle, digiKam и Darktable.

  • Программа подходит для headless-сценариев, где нет монитора и графической оболочки.

Минусы

  • У gPhoto2 нет обычного графического интерфейса, поэтому новичку сложнее начать работу.

  • Наличие камеры в списке поддерживаемых устройств не гарантирует удалённый спуск, Live View и изменение всех параметров.

  • Пути настроек различаются между моделями, поэтому команды нельзя без проверки переносить с одной камеры на другую.

  • Камера может быть занята файловым менеджером, фотосервисом ОС или другой программой.

  • Для длительных серий требуется отдельно контролировать питание, сон камеры и свободное место.

  • Windows не является основной платформой для типичного сценария gPhoto2.

  • Ошибка в шаблоне имени или параметр --force-overwrite могут привести к перезаписи файлов.

  • Команды требуют аккуратной работы с путями, правами доступа и режимами USB.

Безопасность, права доступа и USB

gPhoto2 напрямую взаимодействует с камерой как с USB-устройством. Поэтому многие проблемы связаны не с самой командой, а с тем, кто уже занял устройство. В Linux камера может автоматически открываться файловым менеджером, системным импортёром фотографий или GVfs-процессом. В macOS доступ к камере может перехватываться системными фотослужбами. В таких случаях gPhoto2 видит порт, но не может выполнить команду.

Практические меры:

  • закрыть файловые менеджеры и программы импорта;

  • отключить автоматическое монтирование камеры для длительной съёмки;

  • проверить, что пользователь имеет права доступа к USB;

  • использовать короткий качественный USB-кабель;

  • избегать случайного отключения камеры во время записи;

  • не запускать две команды gPhoto2 одновременно для одной камеры;

  • в скриптах проверять код завершения команды и наличие итогового файла.

Команда --reset может помочь при зависшем USB-протоколе, потому что выполняет сброс порта найденной или указанной камеры. Она не заменяет исправление причины сбоя, но полезна в диагностике.

Типичные ошибки и как их исправлять

Камера не определяется

Команда:

gphoto2 --auto-detect

не показывает модель камеры.

Что проверить:

  • камера включена;

  • кабель поддерживает передачу данных, а не только зарядку;

  • выбран режим PTP/MTP, если камера предлагает выбор;

  • камера не открыта файловым менеджером;

  • пользователь имеет доступ к USB;

  • камера не находится в меню, которое блокирует подключение;

  • аккумулятор не разряжен.

После проверки стоит выполнить:

gphoto2 --list-ports

Если USB-порты не видны, проблема находится ниже уровня камеры: в системе, правах, сборке пакета или USB-контроллере.

Камера видна, но снимок не делается

--auto-detect показывает камеру, но команда съёмки не работает.

Возможные причины:

  • камера не поддерживает remote capture через gPhoto2;

  • выбран неподходящий режим съёмки;

  • объектив не сфокусировался;

  • карта памяти отсутствует или заполнена;

  • камера занята другим процессом;

  • параметр capturetarget установлен не так, как требуется конкретной модели.

Диагностика начинается с:

gphoto2 --abilitiesgphoto2 --list-config

Затем стоит проверить параметры, связанные с сохранением и режимом съёмки.

Снимок делается, но файл не сохраняется на компьютер

Команда --capture-image оставляет файл на камере. Для немедленной загрузки нужна другая команда:

gphoto2 --capture-image-and-download

Если файл создаётся, но имя неудобное или повторяется, используется --filename:

gphoto2 --capture-image-and-download --filename "photo-%04n.%C"

Файлы перезаписываются

Перезапись возникает при одинаковом имени. Решение — использовать дату, время или номер:

gPhoto2 скриншот 3

gphoto2 --capture-image-and-download --filename "%Y%m%d-%H%M%S-%04n.%C"

Для серий нельзя задавать одно статичное имя вроде photo.jpg, если не нужна намеренная перезапись.

Настройка не меняется

Команда:

gphoto2 --set-config /main/capturesettings/aperture=8

не меняет параметр.

Что проверить:

  • правильный путь из --list-config;

  • тип параметра в --get-config;

  • не стоит ли Readonly: 1;

  • режим камеры допускает изменение параметра;

  • объектив поддерживает нужное значение;

  • камера не находится в автоматическом режиме, где параметр заблокирован.

Камера засыпает во время таймлапса

Для длинной серии нужно отключить автоотключение или увеличить таймер сна в меню камеры. gPhoto2 не спасёт процесс, если сама камера отключает USB или питание сенсора. Для длительных проектов используют сетевой адаптер питания камеры.

Команда работает в терминале, но не работает из cron

У cron другая среда: другой PATH, другой пользователь, другие права, другая рабочая папка. В скрипте нужно использовать полный путь к каталогу сохранения, проверить права на USB и записывать лог:

#!/bin/bashcd /home/pi/camera || exit 1/usr/bin/gphoto2 --capture-image-and-download --filename "cron-%Y%m%d-%H%M%S.%C" >> /home/pi/camera/gphoto.log 2>&1

Камера занята другим процессом

Симптомы: gPhoto2 видит устройство, но не может выполнить операцию. Решение — закрыть приложения импорта, размонтировать камеру и отключить автоматическое открытие устройства. При tethering-съёмке камера не должна быть смонтирована или открыта другим приложением.

Работа с несколькими камерами

gPhoto2 может видеть несколько камер, но для устойчивой работы нужно явно указывать порт или модель. Сначала выполняется:

gphoto2 --auto-detect

Допустим, вывод показывает:

Model                          Port----------------------------------------------------------Canon EOS 5D                   usb:001,010Nikon DSC D5100                usb:001,008

Тогда для выбора конкретной камеры используется --port:

gphoto2 --port usb:001,010 --capture-image-and-download --filename "canon-%04n.%C"

или --camera, если нужно явно указать модель:

gphoto2 --camera "Nikon DSC D5100 (PTP mode)" --capture-image-and-download --filename "nikon-%04n.%C"

Для многокамерной фотобудки или 3D-сканирования важно не запускать конкурирующие команды на одну и ту же камеру. Каждый процесс должен получать свой порт, свой каталог сохранения и свой лог.

Работа с именами файлов

Имена файлов в gPhoto2 задаются через --filename. Это один из самых важных параметров в автоматизации.

Полезные варианты:

ШаблонСценарий
photo.%CОдин тестовый кадр
photo-%04n.%CНумерованная серия
%Y%m%d-%H%M%S.%CКадры с отметкой времени
product-%Y%m%d-%04n.%CПредметная съёмка
/home/pi/booth/%Y%m%d-%H%M%S.%CСохранение в конкретный каталог
frame-%05n.%CТаймлапс с длинной нумерацией

Для скриптов лучше использовать абсолютный путь:

gphoto2 --capture-image-and-download --filename "/home/pi/photos/frame-%05n.%C"

Так команда сохранит файл в нужное место независимо от того, откуда запущен скрипт.

Как проверить результат после съёмки

После команды съёмки не стоит ограничиваться тем, что gPhoto2 завершилась без видимой ошибки. В автоматическом процессе нужно проверить файл.

Минимальная проверка в Bash:

#!/bin/bashOUT="/home/pi/photos/test-%Y%m%d-%H%M%S.%C"gphoto2 --capture-image-and-download --filename "$OUT"ls -lh /home/pi/photos/

Более надёжная проверка:

#!/bin/bashDIR="/home/pi/photos"mkdir -p "$DIR"gphoto2 --capture-image-and-download --filename "$DIR/frame-%Y%m%d-%H%M%S.%C"LAST_FILE=$(find "$DIR" -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2-)if [ -s "$LAST_FILE" ]; then  echo "Файл создан: $LAST_FILE"else  echo "Файл не создан или пустой"  exit 1fi

Такая проверка особенно важна в фотобудке, где следующий шаг не должен отправлять на печать отсутствующий или пустой файл.

gPhoto2 в связке с другими программами

gPhoto2 часто используется как первый этап процесса. После получения кадра файл передаётся дальше.

Типовые связки:

СценарийРоль gPhoto2Следующий инструмент
ТаймлапсСнимает последовательность кадровВидеосборка сторонним инструментом
ФотобудкаДелает кадр и сохраняет файлСкрипт рамки, печати или галереи
Предметная съёмкаСнимает и нумерует файлыПросмотрщик или каталогизатор
Лабораторная фиксацияДелает снимок по событиюСкрипт анализа или архивирования
RAW-процессПолучает файл с камерыDarktable, RawTherapee, Capture One
ФотоархивЗагружает снимкиdigiKam, XnView MP, FastStone

Если нужен просмотр и сортировка, можно использовать XnView, XnView MP, FastStone Image Viewer, IrfanView, Fresh View, JetPhoto Studio. Если нужна обработка изображения, логичнее открыть файл в GIMP или другом редакторе.

Практические сценарии выбора

СитуацияПодходит ли gPhoto2Что учитывать
Разово скачать фото с камерыДаДостаточно --auto-detect и --get-all-files
Снимать товары на штативеДаНужны --capture-image-and-download и шаблон имени
Делать таймлапсДаВажны питание, сон камеры, --interval, --frames
Работать в студии с визуальным отборомЧастичноДля визуального workflow удобнее Capture One, Darktable или фирменная утилита
Настроить Raspberry Pi-фотобудкуДаНужны скрипт, логирование, проверка файла
Управлять Canon EOS через фирменный интерфейсНе основной вариантCanon EOS Utility удобнее для GUI-съёмки Canon
Управлять Nikon с фирменным GUIНе основной вариантNikon NX Tether рассчитан на совместимые Nikon
Делать ретушь и цветНетgPhoto2 не редактор
Автоматизировать техническую съёмкуДаГлавное преимущество — вызов из скрипта

Чем gPhoto2 отличается от обычного импорта фото

Обычный импорт отвечает на вопрос: как перенести снимки с карты памяти в библиотеку. gPhoto2 отвечает на другой вопрос: как управлять камерой как подключённым устройством.

Разница заметна в деталях:

  • графический импорт обычно начинается после съёмки, gPhoto2 может запускать саму съёмку;

  • импортёр работает с файлами, gPhoto2 может обращаться к настройкам камеры;

  • каталогизатор организует коллекцию, gPhoto2 создаёт кадр и отдаёт его процессу;

  • просмотрщик показывает изображения, gPhoto2 может работать вообще без экрана;

  • фирменные утилиты удобны для конкретного бренда, gPhoto2 применима в Unix-like автоматизации.

Поэтому gPhoto2 не нужно оценивать как неудобный аналог фотоальбома. Это отдельный тип программы: камера становится управляемым устройством, а не просто носителем файлов.

Ограничения совместимости

Самая частая ошибка при оценке gPhoto2 — считать, что наличие камеры в списке равно полной совместимости. На деле есть несколько уровней:

  1. Камера определяется.

  2. Файлы на камере видны.

  3. Файлы можно скачать.

  4. Можно спустить затвор.

  5. Можно скачать кадр сразу после съёмки.

  6. Можно менять настройки.

  7. Можно получать preview или Live View.

  8. Можно стабильно работать в длинной серии.

Каждый следующий уровень требует дополнительной поддержки со стороны камеры и драйвера. У старых компактных камер может быть доступ только к файлам. У DSLR и беззеркальных камер чаще доступна удалённая съёмка, но набор настроек всё равно отличается.

Важные параметры командной строки

--camera

Позволяет указать модель камеры вручную. Полезно при нескольких камерах или когда автоопределение выбирает не тот профиль.

gphoto2 --camera "Nikon DSC D5100 (PTP mode)" --summary

--port

Фиксирует порт подключения:

gphoto2 --port usb:001,016 --summary

Используется для нескольких камер и скриптов, где нельзя полагаться на первый найденный девайс.

--filename

Управляет именем файла:

gphoto2 --capture-image-and-download --filename "shot-%04n.%C"

--keep

Сохраняет снимки на карте камеры при съёмке с загрузкой:

gphoto2 --capture-image-and-download --keep

--force-overwrite

Перезаписывает существующий файл без вопроса:

gphoto2 --capture-image-and-download --force-overwrite --filename "latest.%C"

Этот параметр нужен только там, где намеренно создаётся один обновляемый файл, например latest.jpg. Для архива съёмки его лучше не использовать.

--quiet

Сокращает вывод:

gphoto2 --quiet --capture-image-and-download

Подходит для скриптов, где лог формируется отдельно.

--debug и --debug-logfile

Используются для диагностики:

gphoto2 --debug --debug-logfile=gphoto.log --capture-image-and-download

Debug-лог нужен при сложных ошибках связи с камерой, но в обычной работе он создаёт лишний объём данных.

Как строить надёжный скрипт для gPhoto2

Простой скрипт должен выполнять не только команду съёмки, но и базовую проверку.

Пример:

#!/bin/bashset -eDIR="$HOME/photos"mkdir -p "$DIR"DATE_PREFIX=$(date +"%Y%m%d-%H%M%S")TARGET="$DIR/photo-$DATE_PREFIX.%C"gphoto2 --auto-detectgphoto2 --capture-image-and-download --filename "$TARGET"echo "Съёмка завершена"

Для фотобудки полезнее проверять итоговый файл:

#!/bin/bashDIR="/home/pi/booth"mkdir -p "$DIR"BEFORE=$(find "$DIR" -type f | wc -l)gphoto2 --capture-image-and-download --filename "$DIR/booth-%Y%m%d-%H%M%S.%C"AFTER=$(find "$DIR" -type f | wc -l)if [ "$AFTER" -le "$BEFORE" ]; then  echo "Новый файл не найден"  exit 1fiecho "Кадр сохранён"

Для длинных процессов нужно вести лог:

gphoto2 --capture-image-and-download --interval 10 --frames 60 --filename "frame-%04n.%C" >> gphoto-session.log 2>&1

Так после сбоя видно, на каком кадре остановилась серия и какое сообщение вернула камера.

Когда лучше выбрать не gPhoto2

gPhoto2 не универсальный ответ на все задачи с фотографиями. В ряде случаев удобнее выбрать другую программу.

Нужна задачаЛучше выбрать
Визуальный tethered shooting в LinuxEntangle или Darktable
Импорт и каталогизация фотоархиваdigiKam, XnView MP, Shotwell
Студийный RAW-workflowCapture One или Darktable
Управление Canon через фирменный GUICanon EOS Utility
Управление Nikon через фирменный GUINikon NX Tether
Просмотр и быстрая сортировка снимковFastStone Image Viewer, IrfanView, XnView
Ретушь и монтажGIMP или другой редактор
Простое копирование с Mass Storage камерыФайловый менеджер ОС

gPhoto2 сильна, когда нужен управляемый процесс. Если задача сводится к просмотру, сортировке, ретуши или цветокоррекции, после получения файлов нужен другой инструмент.

FAQ

Можно ли пользоваться gPhoto2 без терминала?

Непосредственно gPhoto2 — консольная программа. Без терминала используют графические фронтенды и приложения на базе libgphoto2, например Entangle, digiKam или Darktable. Entangle создан именно как графический интерфейс для tethered shooting.

Поддерживает ли gPhoto2 Canon и Nikon?

gPhoto2 работает с большим числом камер разных производителей, включая многие модели Canon и Nikon, но набор функций зависит от конкретной модели. Для одной камеры может быть доступна только загрузка файлов, для другой — удалённый спуск, настройка параметров и tethered shooting.

Почему камера есть в списке, но удалённая съёмка не работает?

Поддержка в списке может означать только доступ к файлам. Для удалённого управления нужно, чтобы камера и драйвер поддерживали capture, настройки и события. Базовая загрузка изображений и remote control — разные уровни совместимости.

Можно ли использовать gPhoto2 на Raspberry Pi?

Да, gPhoto2 подходит для Raspberry Pi-сценариев: фотобудок, внешней камеры, таймлапса, автоматического снимка по событию. Важно обеспечить питание камеры, права доступа к USB, стабильный кабель и проверку результата после команды.

Чем gPhoto2 отличается от Entangle?

gPhoto2 работает из командной строки, Entangle даёт графический интерфейс для tethered shooting. Entangle удобнее для ручной визуальной съёмки, gPhoto2 удобнее для скриптов, headless-устройств и автоматизации.

Чем gPhoto2 отличается от Darktable?

Darktable — программа для RAW-workflow и обработки, в которой есть tethering. gPhoto2 — командная утилита управления камерой. Darktable подходит для фотографа, который хочет сразу видеть и обрабатывать снимки; gPhoto2 — для команд, сценариев и технических процессов.

Можно ли снимать видео через gPhoto2?

В gPhoto2 есть команды и сценарии, связанные с movie capture и выводом потока, но поддержка зависит от камеры, драйвера и режима. Для конкретной камеры поддержку нужно проверять командами --abilities и --list-config.

Что делать, если команда зависла?

Сначала нужно остановить процесс штатно через Ctrl-C, если он запущен в терминале. Для зависшего протокола можно использовать --reset, который сбрасывает USB-порт найденной или указанной камеры. После этого стоит проверить кабель, питание, занятость камеры и лог.

Как понять, какие настройки можно менять?

Выполнить:

gphoto2 --list-config

Затем посмотреть конкретный параметр:

gphoto2 --get-config NAME

Если параметр доступен для изменения, в выводе будут варианты или диапазон. Если параметр только для чтения, изменить его через --set-config нельзя.

Итоговые рекомендации

gPhoto2 стоит выбирать, когда камера должна управляться командой: сделать кадр, скачать файл, снять серию, отследить событие, изменить доступный параметр, встроить фотосъёмку в скрипт. Это не программа для ретуши, не каталогизатор и не студийный интерфейс с крупной кнопкой съёмки. Её сильная сторона — прямое управление цифровой камерой из терминала.

Для разовой загрузки снимков достаточно --auto-detect и --get-all-files. Для предметной съёмки лучше использовать --capture-image-and-download и продуманный шаблон --filename. Для таймлапса нужны --interval, --frames, питание камеры и проверка нумерации. Для фотобудки важны обработка ошибок, логирование и проверка итогового файла. Для визуального рабочего процесса удобнее Entangle, Darktable, digiKam, Canon EOS Utility, Nikon NX Tether или Capture One — выбор зависит от камеры, ОС и задачи.

gPhoto2 особенно полезна там, где ручной интерфейс мешает: Raspberry Pi, автоматическая съёмка, лабораторные стенды, фотобудки, скрипты, техническая фиксация и повторяемые серии. Чем точнее описан процесс в командах, тем лучше раскрывается эта программа.

Список изменений

Переход к разделённой архитектуре:

  • Разделение на библиотеку и фронтенд важно для всей экосистемы. Благодаря этому gPhoto2 работает как самостоятельная CLI-программа, а другие приложения могут использовать libgphoto2 внутри собственных интерфейсов. Это объясняет, почему Entangle, digiKam и Darktable относятся к тому же технологическому кругу, но решают разные пользовательские задачи.

Развитие команд и shell-режима:

  • В релизе gPhoto2 2.5.20 были расширены диапазоны файлов с 16384 до 65536 и добавлены shell-команды summary , storage-info , trigger-capture , соответствующие командной строке. Это усилило shell-режим: пользователь получил больше команд внутри интерактивной оболочки без выхода в обычный терминал.

Улучшение tethered shooting и событий:

  • В релизе 2.5.26 изменения коснулись movie capture и wait-event / capture-tethered : появилась возможность завершения через SIGUSR2 , гранулярность ожидания в одну секунду, а wait-event получил ожидание TIMEOUT . Для автоматических процессов это важно, потому что длительная привязанная съёмка должна корректно завершаться и реагировать на внешнее управление.

Изменения в preview, нумерации и машинном выводе:

  • В релизе 2.5.28 появились изменения show-preview , параметр --parsable для списка файлов в форме, пригодной для обработки, параметр --filenumber FILENUMBER для начального номера в --filename %n , а SIGUSR1 стал способом инициировать capture во время --wait-event / --capture-tethered . Эти изменения полезны для скриптов, где важны предсказуемый вывод, нумерация и внешнее управление съёмкой.

Развитие libgphoto2 и поддержки камер:

  • Библиотека libgphoto2 продолжала расширять поддержку камер и исправлять работу отдельных драйверов. В релизах 2.5.31, 2.5.32 и 2.5.33 упоминались изменения для Canon EOS, Sony Alpha, Fuji, Nikon, Ricoh, Pentax, GoPro, Olympus/OM System и других устройств, а также улучшения обработки событий, свойств камер, больших файлов и новых идентификаторов.

Развитие как инструмента автоматизации:

  • История gPhoto2 показывает движение от базового доступа к камерам к более удобной автоматизации: больше команд shell-режима, лучшее ожидание событий, управляемая нумерация, машинно-читаемый вывод, улучшенная реакция на сигналы. Для конечного пользователя это означает не косметические изменения, а более устойчивые сценарии фотобудок, таймлапсов, технической съёмки и интеграции с внешними программами.

Выберите ссылку для загрузки gPhoto2

Всего скачали: 17 | сегодня: 4

Скачать бесплатно
gPhoto2

Похожие программы на gPhoto2

из раздела "Графические редакторы"

Оставте свой отзыв о gPhoto2